module.exports = class extends think.Model {
  // 模型关联
  get relation() {
    return {
      parent: {
        type: think.Model.BELONG_TO,
        model: 'role',
        key: 'parent_id',
        fKey: 'id'
        // field: ''
      }
      //  permissions: {
      //  type: think.Model.HAS_MANY,
      //  model: 'resource',
      //  key: 'resource_id',
      //  fKey: 'id',
      //  // field: ''
      // }
    };
  }

  async getPermissions(role_id) {
    const permissions = await think.model('role_auth').where({role_id: role_id}).select();

    // let permissions = await think.model('role_auth')
    // .alias('ra')
    // .join({
    //	table: 'resource',
    //	join: 'left',
    //	as: 'r',
    //	on: ['r.id', 'ra.resource_id']
    // })
    // .where(map)
    // .select();

    return permissions;
  }

  async addUser(role_id, uid) {
    if (await think.model('user_role').where({uid: uid, role_id: role_id}).count() > 0) {
      return false;
    } else {
      return await think.model('user_role').add({uid: uid, role_id: role_id});
    }
  }
};
